package com.itheima.api_demo.arrays_demo;

import java.util.Arrays;
import java.util.Random;

/*
    Arrays类 : 数组的工具类
        构造方法 :  private Arrays(){}

        成员方法 :
            public static void sort(int[] arr) : 对数组的内容升序排序
            public static String toString(int[] arr) : 把数组中的内容以指定格式进行返回(String)

        需求 : 随机生成10个[10,100]之间的整数，放到整数数组中，按照从小到大的顺序排序并打印元素内容。

 */
public class ArraysDemo2 {
    public static void main(String[] args) {
        int[] arr = new int[10];

        // 创建随机数对象
        Random r = new Random();
        // 循环拿随机数给数组赋值
        for (int i = 0; i < arr.length; i++) {
            arr[i] = r.nextInt(91) + 10;
        }



        // 遍历数组
        // System.out.println(myToString(arr));
        System.out.println(Arrays.toString(arr));

        // 排序
        // Arrays.sort(arr);

        // 遍历数组
        // System.out.println(myToString(arr));
        System.out.println(Arrays.toString(arr));
    }

    // 接收一个数组, 返回指定格式的字符串  [元素1, 元素2, 元素3, .... 元素n]
    public static String myToString(int[] arr){
        StringBuilder sb = new StringBuilder();// [元素1, 元素2, 元素3, .... 元素n]
        sb.append("[");

        // 遍历数组
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length -1){
                // 最后一个元素
                sb.append(arr[i]).append("]");
            }else{
                // 不是最后一个元素
                sb.append(arr[i]).append(", ");
            }
        }
        return sb.toString();
    }

    // Arrays类的toString源码
    public static String toString(int[] a) {// a = new int[]{}
        // 提高代码的健壮性
        if (a == null) {
            return "null";
        }
        // iMax记录的是数组的最大索引
        int iMax = a.length - 1;

        if (iMax == -1) {
            return "[]";
        }

        StringBuilder b = new StringBuilder();// [元素1, 元素2, 元素3]
        b.append('[');
        for (int i = 0;   ; i++) {
            b.append(a[i]);
            if (i == iMax) {
                return b.append(']').toString();
            }
            b.append(", ");
        }
    }
}
